1. 本地启动服务打开页面

1.1. http-server

  1. npm install http-server -g
  2. 在目标目录打开命令行 执行 "http-server -p 自定义端口号"

2. npm源管理器 && node版本管理

2.1. npm源管理器:nrm

  • 安装:sudo npm install -g nrm
    查看是否安装成功:nrm --version
❯ nrm --version
    1.2.3
  • 列出可选择的源:nrm ls
    前面带 * 号的表示正在使用的源
❯ nrm ls

    npm ---------- https://registry.npmjs.org/
    yarn --------- https://registry.yarnpkg.com/
    *tencent ------ https://mirrors.cloud.tencent.com/npm/
    cnpm --------- https://r.cnpmjs.org/
    taobao ------- https://registry.nlark.com/
    npmMirror ---- https://skimdb.npmjs.com/registry/
  • 切换使用的源:nrm use npm
❯ nrm use cnpm
    Registry has been set to: https://r.cnpmjs.org/
  • 删除一个源:nrm del \
❯ nrm del xdf

    delete registry xdf success
  • 添加一个源:nrm add \ \
❯ nrm add xdf http://npm.koolearn.com/

    add registry xdf success
  • 测试源速度:nrm test
    测试一个源的响应时间:nrm test \
❯ nrm test npm

    npm ------ 1612ms
  • 测试所有源的速度:nrm test
❯ nrm test

    npm ------ 1317ms
    yarn ----- 866ms
    tencent -- 316ms
    * cnpm ----- 572ms
    taobao --- 404ms
    npmMirror - 3440ms
    xdf ------ 957ms
  • 访问源的主页:nrm home \

2.2. node版本管理工具n

  • 安装:sudo npm install -g n 查看是否安装成功:n --version
❯ n --version
    v7.4.1
  • 安装或使用一个node版本:sudo n node-version,
    如果本地已存在这个node-version,则切换到这个node-version;
    如果本地不存在这个node-version,则下载安装并切换
❯ sudo n 8.12.0
  installing : node-v8.12.0
       mkdir : /usr/local/n/versions/node/8.12.0
       fetch : https://nodejs.org/dist/v8.12.0/node-v8.12.0-darwin-x64.tar.xz
   installed : v8.12.0 (with npm 6.4.1
  • 查看所有已经安装的node版本:n
  • 使用或安装稳定的官方发布:sudo n stable
❯ sudo n stable
  installing : node-v14.18.1
       mkdir : /usr/local/n/versions/node/14.18.1
       fetch : https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-x64.tar.xz
   installed : v14.18.1 (with npm 6.14.15)
  • 删除一个node版本:n rm node-version

3. iTerm2配置

3.1. iTerm2 + oh-my-zsh + powerlevel10k

  1. 安装oh-my-zsh
curl: 
export REMOTE=https://gitee.com/imirror/ohmyzsh.git
sh -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh/tools/install.sh)"
  1. vim ~/.zshrc,设置 ZSH_THEME="agnoster"
    • vim简单使用
    • 修改: i
    • 保存并关闭: esc --> :wq
  2. 切换agnoster主题后会出现乱码,需要安装额外的字体 Meslo for Powerline,安装好后在 Preferences->Profiles->Text->Font中进行配置
  3. 和"agnoster"平级的,也可以安装powerlevel10k/powerlevel10k主题
  4. 手动克隆主题相关git仓库
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
  • Set ZSH_THEME="powerlevel10k/powerlevel10k" in ~/.zshrc
  • 注意
  • 2 3 4步操作后 需重启iTerm.app 方能看到效果

3.2. 将iTerm2配置成 Visual Studio Code 的默认终端

  • 打开iTerm2窗口,点击左上角菜单 iTerm2 --> Make iTerm2 Default Term 即可

    • 注意:在vscode中使用配置了主题的 iTerm2,字体显示可能会不正常,解决方案:
    • 打开iTerm2按住“command + ,”打开Preferences,在 Profiles --> Text --> Font 中查看当前使用的字体
    • 打开vscode按住“shift + command + p”打开“命令面板”,检索“setting.json”,选择“Preferences: Open Setting(JSON)”,在JSON文件中追加字体配置,将下面json代码中的“Meslo LG S for Powerline”替换成你iTerm2使用的字体 即可

      "editor.fontFamily": "Meslo LG S for Powerline",
      "terminal.integrated.fontFamily": "Meslo LG S for Powerline"
      

3.3. 窗口基本使用(与Chrome基本相同)

  • 打开新窗口:command+n
  • 打开新标签页(tab):command+t
  • 关闭当前标签页:command+w
  • 多个标签页切换:control+Tab

3.4. 在终端(iTerm2 || Mac自带Terminal 都适用)中通过 命令的方式打开 文件夹

  • 在 Finder 中显示
    1. 在终端中cd到 目标文件夹名 的根目录
    2. 使用“open 目标文件夹名“命令
  • 使用 Visual Studio Code 打开
    1. 在 Visual Studio Code 中安装“code”命令
      1. 打开VSCode
      2. command+shift+p –> 输入shell command –> 点击提示Shell Command: Install ‘code’ command in PATH
        1. 输入shell command时可以同步看到“Shell Command: Uninstall ‘code’ command in PATH”,点击可卸载“code”命令
    2. 在终端中cd到 目标文件夹名 的根目录
    3. 使用“code 目标文件夹名“命令

4. git相关

4.1. 本地配置

  • 查看git配置信息:git config --list
  • 查看git用户名:git config user.name
  • 查看邮箱配置:git config user.email
  • 全局配置用户名:git config --global user.name "nameVal"
  • 全局配置邮箱:git config --global user.email "email@qq.com"

    4.2. 常用命令

<!-- 查看所有远程分支 -->
git branch -a

<!-- 检出远程分支到本地 -->
<!-- 一般localBrancheName 与 remoteBranchName 同名,如果目标远程分支 本地pull不到,那checkout会失败 -->
git checkout -b localBrancheName remoteBranchName

<!-- vscode pull不到远程新建分支,使用此命令 -->
git remote update origin     存疑:网上看git fetch也可以解决这个问题,git fetch干什么用的

<!-- 删除本地分支 -->
git branch -d localBrancheName || git branch --delete localBrancheName

<!-- 删除远程分支 -->
git push origin -d remoteBranchName || git push origin --delete remoteBranchName

<!-- git commit后想要撤回commit -->
git reset --mixed HEAD^  <!-- 不删除工作空间改动代码,撤销最近一次commit,并且撤销git add. -->
git reset --soft HEAD^  <!-- 不删除工作空间改动代码,撤销最近一次commit,不撤销git add. -->
git reset --hard HEAD^  <!-- 删除工作空间改动代码,撤销最近一次commit,撤销git add. -->
 <!-- HEAD^意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2 -->

<!-- git commit后想修改message -->
git commit amend // 然后通过vim修改即可:键入“i”进入INSERT修改模式,修改完成后点击“esc”再键入“:wq会车”即可

<!-- 想把 build生成的 _book文件夹 推送到 release分支
    先切换到可以执行 “gitbook build” 的分支(本场景为 master || dev)
    _book 目录需要被 git 记录,我们才可以用它作为子树(subtree),因此 /_book 不能被 .gitignore 规则排除
    _book 代表子树所在的目录名
    origin 是 remote name(远程仓库名)
    release 是目标分支名称(release分支不需要提前创建) -->
git subtree push --prefix _book origin release

<!-- 将代码同时推到两个git仓库 -->
<!-- push的时候需要分别提交,还有更好的方但是本地修改尝试未成功,[传送门](https://segmentfault.com/a/1190000011294144) -->
git remote // 查看远程仓库
git remote -v // 查看权限
git remote add 远程仓库名(e.g. github) git仓库地址(https://github.com/xxx.git || git@github.com:xxx.git)
git push 远程仓库名(e.g. github) 分支名(e.g. master) // 将 origin仓库master分支的代码 推送到 github仓库的master分支
git push 远程仓库名(e.g. github) release:master // 将 origin仓库release分支的代码 推送到 github仓库的master分支
<!-- 针对以上操作补充几点说明:
第一个push:
    应用场景:即将离职,将公司自己负责过的重要项目 push到 github远程仓库一份(privte权限,不涉及代码泄露问题)
    实际origin --> 公司gitlab
第二个push:
    应用场景:不希望在github上暴露gitbook源码,将gitbook build后的文件push到 github新建的仓库
    实际origin --> github中另外一个仓库 -->

4.3. .gitignore

  1. 简介:每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些 文件||文件夹 是不需要被添加到版本管理中的。比如这个基于gitbook框架的项目:根目录下的node_modules 和 _book 文件夹,这些不需要提那家到版本管理中的 文件||文件夹 在项目中很重要,但是它们占用内存也是很大的,所以一般我们使用Git管理的时候 会将其添加到.gitignore文件中
  2. 常用规则

     /mtk/ 过滤根目录下的mtk文件夹 包含里面的所有文件
     *.zip 过滤所有.zip文件
     /mtk/do.c 过滤根目录下的mtk文件夹中的do.c文件
    
    • 通过以上规则的配置:被过滤掉的文件就不会出现在你的Git仓库中了,当然本地库中还有,只是push的时候不会上传 除了以上规则,它还可以指定要将哪些文件添加到版本管理中(include 和 exclude 的区别)

      !src/   不过滤该文件夹
      !*.zip   不过滤所有.zip文件
      !/mtk/do.c 不过滤该文件
      
    1. 配置语法:
      1. 以斜杠/开头表示目录;
      2. 以星号*通配多个字符;
      3. 以问号?通配单个字符
      4. 以方括号[]包含单个字符的匹配列表;
      5. 以叹号!表示不忽略(跟踪)匹配到的文件或目录;
      6. 此外,git 对于 .gitignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
    2. 示例说明

      1. 规则:fd1/*
        1. 说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
      2. 规则:/fd1/*
        1. 说明:忽略根目录下的 /fd1/ 目录的全部内容;
      3. 规则:
        /*
        !.gitignore
        !/fw/bin/
        !/fw/sf/
      
      1. 说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录
  3. 创建.gitignore文件
    1. 常规的windows操作(windows下不允许在资源管理器中直接新建 匿名文件,所以先新建“gitignore.txt”文件)
      1. 项目根目录下创建gitignore.txt;
      2. 编辑gitignore.txt,写下你的规则,例如加上node_modules/;
      3. 打开命令行窗口,切换到 项目根目录;
      4. 执行命令ren gitignore.txt .gitignore
        1. ren 即 “rename”
    2. 用Git Bash
      1. 根目录下右键选择“Git Bash Here”进入bash命令窗口;
      2. 输入vim .gitignore 或 touch .gitignore命令,打开文件(没有文件会自动创建);
      3. 按i键切换到编辑状态,输入规则,例如node_modules/,然后按Esc键退出编辑,输入:wq保存退出

        4.4. git通过ssh连接github

  4. 本地生成ssh密钥(包含 私钥id_rsa 和 公钥id_rsa.pub)
    1. 终端中输入‘ssh-keygen -t rsa -C "你的邮箱账号"’ createSSHKey
    2. 注意:如果已经生成过 id_rsa 和 id_rsa.pub 的,可通过"rm id_rsa"和"rm id_rsa.pub"将密钥删除,生成的sshkey能用于多个代码托管平台
  5. 登入github,进入setting --> SSH and GPG keys --> New SSH key
    1. Title内容 随意,Key内容 对应公钥id_rsa.pub文件中的内容,然后点击“Add SSH key”保存
  6. 终端中输入 “ssh -T git@github.com”命令进行测试 testSSH

4.5. 前端静态资源项目部署到github

  1. 通过 “username.github.io/项目名/” 访问
    1. 进入 Github 项目的 Settings
    2. 拉到最下面的 Github Pages,点击“Check it out here!”
    3. 选择目标分支 和 目标根目录即可
  2. 通过 “username.github.io” 访问(访问链接不希望有 /项目名 这个后缀)
    1. 创建名为 username.github.io 的项目
    2. 重复 上面123

5. emmet语法

  • 简介:Emmet是一套面向文本编辑器的插件,它允许通过内容辅助高速度的编写和编辑HTML、CSS和其他结构化的代码格式,只要能安装他的编辑器都能使用,大部分编辑器都可以使用该语法规则,我们平时开发的Sublime Text、Eclipse、Notepad++、VS code、Atom、Dreamweaver等等编辑器都可以使用。
  • 基本用法,更多语法详见Cheat Sheet

    • 子节点 >

        <!-- ul>li -->
        <ul>
            <li></li>
        </ul>
      
    • 兄弟节点 +

        <!-- header+main+footer -->
        <header></header>
        <main></main>
        <footer></footer>
      
    • 上级节点 ^

        <!-- ul>li>span^^div ^上一级,^^上两级 -->
        <ul>
            <li><span></span></li>
        </ul>
        <div></div>
      
    • 倍增 *

        <!-- tr>td*5 -->
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
      
    • ID属性 #

        <!-- div#app -->
        <div id="app"></div>
      
    • class属性 .

        <!-- div.selected -->
        <div class="selected"></div>
      
    • 自定义属性

        <!-- p[data-country=“China” data-province="BeiJing"] -->
        <p data-country="“China”" data-province="BeiJing"></p>
      
    • 文本 {}

        <!-- h1{这是一篇markdown} -->
        <h1>这是一篇markdown</h1>
      
    • 组 ()

        <!-- (ul>li>span)+div -->
        <ul>
            <li><span></span></li>
        </ul>
        <div></div>
      
    • 数字序列 $

        <!-- ul>li.item$*10 -->
        <ul>
            <li class="item1"></li>
            <li class="item2"></li>
            <li class="item3"></li>
            <li class="item4"></li>
            <li class="item5"></li>
            <li class="item6"></li>
            <li class="item7"></li>
            <li class="item8"></li>
            <li class="item9"></li>
            <li class="item10"></li>
        </ul>
        <!-- h$[title=item$]{Header $}*3 -->
        <h1 title="item1">Header 1</h1>
        <h2 title="item2">Header 2</h2>
        <h3 title="item3">Header 3</h3>
        <!-- ul>li.item$$*5 -->
        <!-- 写几个$ 生成的数字 位数不够时数字前面会补“0” -->
        <ul>
            <li class="item01"></li>
            <li class="item02"></li>
            <li class="item03"></li>
            <li class="item04"></li>
            <li class="item05"></li>
        </ul>
        <!-- ul>li.item$@-*3 倒序:@- -->
        <ul>
            <li class="item3"></li>
            <li class="item2"></li>
            <li class="item1"></li>
        </ul>
        <!-- ul>li.item$@3*3 从n开始:@n -->
        <ul>
            <li class="item3"></li>
            <li class="item4"></li>
            <li class="item5"></li>
        </ul>
      
    • HTML模版 ! --> tab

        <!DOCTYPE html>
      <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
        </head>
        <body>
      
        </body>
        </html>
      

6. 微信宿主环境 h5页面调试

  • 调研背景:H5页面在 微信环境中打开 与 在其他宿主环境(手机浏览器、PC端手机模拟器)中打开 展示样式不一致
  • 微信X5内核:该内核是腾讯的浏览服务,是用来帮助应用开发商大幅改善应用体验,有效提升开发,运营,商业化效率的,但是,被用户反馈视频兼容性不好,打开速度慢,没有夜间模式等等问题。通过关闭微信X5内核,使用系统内部原生WebView,可以提升整体速度和使用体验
  • 方法一:Chrome inspect调试 Android 微信X5内核 H5页面
    • 微信X5内核 && 手机USB调试模式 && PC chrome://inspect 调试微信端打开的H5页面
      • 微信X5内核(如遇链接打不开 转化成二维码使用微信扫一扫再试)
        • 如何查看你的微信X5内核是否被启用
          • 打开一篇公众号文章或者一个微信内部网页,在页面内的顶部往下拉,如果看到“QQ浏览器X5内核提供技术支持”这一行字样,说明你正在使用微信X5内核 judgeWXOpenX5Core
        • 启用 微信X5内核(链接均为 在微信环境打开)
        • 关闭 微信X5内核
        • 已启用 微信X5内核的情况下,打开 tbs调试页面
          • http://debugtbs.qq.com debugtbs
            • 点击“DebugX5”进入“X5 调试页面”,进入信息tab 打开下图中三项调试功能 x5CoreDebug
          • 如果暂未启用 || 已关闭 微信X5内核,访问 http://debugtbs.qq.com 后会跳转至 错误信息页面 debugtbsFault
          • 注:打开tbs调试页面 只针对Android端 微信App,IOS端 微信App 访问此链接为 错误提示页 iosOpenDebugtbs
      • 开启手机USB调试模式(20211217 以Android终端红米K40为例)
        • 设置 --> 我的设备 --> 全部参数 --> 连击“MIUI版本” 会有toast提示框 提示“开发者模式”是否打开,“开发者模式”被打开后
          • 设置 --> 更多设置 --> 开发者模式 --> 往下滑找到调试tab,打开“USB 调试” && “USB调试(安全设置)”
      • PC(20211217 以MacBook Pro macOS Big Sur为例) chrome://inspect 调试微信访问的 H5页面
        • PC端 使用chrome访问“chrome://inspect”
        • 线缆链接手机 和 PC
          • 坑点:使用手机充电线缆进行连接(usb端连接至mac扩展坞),连接状态及不稳定
          • 解决方案:使用mac充电线( 双端type c的线)链接即可(红米K40充电口为 type c接口)
        • 在手机微信中打开 目标h5链接,在inspect页面 Devices选项中,就会出现微信WebView页面了,然后点击 需要调试页面 下面的inspect按钮,及可进行调试 inspectPage
    • 扩展:调试 在 Android Chrome App中 打开的h5页面:
      • Android Chrome App && 手机USB调试模式 && PC chrome://inspect
        • Chrome App无需特别设置,手机USB调试模式、PC chrome://inspect 与 上面相同 inspectMobile
    • 注:
      • 如果点击“inspect”后出现的页面是个空白页,上面显示“HTTP/1.1 404 Not Found”,PC Chrome进正向代理翻墙即可
      • IOS端H5页面调试 暂时没用到,后续碰到了再研究
  • 方法二:使用 微信开发者工具

7. 流程图绘制工具

8. Chrome插件

  • FeHelper:集成了 “JSON美化工具”、“二维码/解码”、“图片转Base64”等功能
  • Header Editor:目前我在开发中的应用场景是:自定义页面接口请求头(页面中接口需要登录才能正常访问,前端本地启动项目后 同时在新标签页访问 pre || prd 对应页面并登录 但同n级域名的开发页面仍获取不到登录肽,使用插件在请求头中手动配置cookie)

9. Mac虚拟机运行window

  1. 安装虚拟机:VMware Fusion Player 12(20200820 VMware Fusion 12 正式发布:个人用户可免费使用用VMware Fusion Player(VMware Fusion阉割版),下文称vmware),安装步骤:
    1. 注册VMware Fusion Player 账号并激活 registerVM
    2. 下载软件 downloadVM
    3. 获取软件安装需要的license getVMKey
    4. 安装激活
  2. window7企业版下载:I Tell You
  3. 创建虚拟机
    1. 打开vmware创建新的虚拟机(拖入下载好的ISO文件)
      1. 集成级别选择了“更加独立”(貌似这样会更加安全)
    2. 安装前(点 长得像播放器一样的按钮 后开始安装)的注意事项:
      1. mac系统偏好设置 --> 安全性与隐私 --> 允许vmware......
      2. 尽量在设置中将“软盘“移除
    3. window7企业版激活
      1. 以管理员身份启动cmd
      2. 输入slmgr /skms kms.03k.org
      3. 输入slmgr /ipk 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
      4. 输入slmgr /ato
  4. vmware虚拟机的使用
    1. 启动、挂起、关机
    2. 拖文件、复制粘贴文件
      1. 互传文件操作需安装VMware Tools,安装方法:
        1. VMware Fusion菜单栏:虚拟机 --> 安装 VMware Tools,如果“安装 VMware Tools”为不可点击的灰色按钮,转至 2 installVMTools
        2. 在应用程序中找到VMware图标,右击“显示包内容”,打开 x/VMware Fusion.app/Contents/Library/isoimages路径,在isoimages文件夹中找到 虚拟机中系统 对应的iso文件(本例中为window7,即window.iso)将其复制到mac桌面
        3. 在虚拟机界面 选择光盘或光盘映像,然后找到刚才的iso文件,然后点击 连接 CD/DVD loadISO
        4. 双击 DVD驱动器进行VMware Tools安装
          1. 可能出现的问题:提示无法安装,需更新window系统至SP1 installVMToolsFails
            1. 解决方案:重新下载 window7企业版 downloadSysIso
        5. 安装完成后 “断开连接 CD/DVD”,删除mac桌面的iso文件即可 unloadISO
          1. iso文件之所以要复制出来是因为 虚拟机选择光盘或光盘映像 的时候无法打开 Fusion.app/Contents/Library/isoimages路径(是灰色的),放到桌面只是为了好找
          2. 如果步骤5中 只是操作了删除mac桌面的iso文件,但是未“断开连接 CD/DVD”,那么启动虚拟机的时候会有报错提示:已经挂载了磁盘但是找不到文件路径
  5. 碰到的问题及解决方案
    1. 连接U盘后,“我的电脑”中未显示 目标盘符:
      1. 背景:启动虚拟机 插入U盘后:
        1. 虚拟机-->设置-->USB和蓝牙 选项中 已连接的USB设备列表 已显示 目标U盘;
        2. 虚拟机-->USB和蓝牙 子菜单中有 断开目标U盘 选项;
        3. “我的电脑”-->属性-->设备管理器-->存储控制器 中能够目标U盘,右键“更新驱动程序”没有效果:
      2. 解决过程
        1. 排查方向一(错误):因为 目标U盘之前 在其他Windows系统物理机上可以被正常使用,所以认为问题的原因是 mac环境下 VMware Fusion Player 12 Windows虚拟机不识别U盘,全网检索相关解决办法,但无非是要达成1.1 1.2 1.3点,遂调整方向为 排查方向二
        2. 排查方向二:跳过虚拟机环境,直接去解决 插入U盘 设备管理器中能够看到设备,但“我的电脑” 中不显示目标盘符的问题,按照如下步骤进行操作,操作到 步骤4 时遇到 错误提示:“系统找不到指定文件”,在 步骤3 中观察U盘分区情况时发现 U盘并不是一整块完整的分区,而是被分成了一大两小3块分区,想到有可能是之前 U盘 有做winpe原因,决定完全格式化U盘再试
          1. 右键点击“我的电脑”图标,点击弹出菜单中的管理选项
          2. 来到计算机管理页面后,点击左侧的存储选项,将其展开后,点击下方的磁盘管理选项
          3. 在右侧的页面中可以看到电脑中所有的磁盘信息
          4. 在其中找到 目标U盘,并点击鼠标右键,然后点击弹出菜单中的 更改驱动器号和路径选项
          5. 在更改驱动器号和路径窗口中,根据喜好设置一个驱动器号,选中后点击下方的确定按钮
          6. 回到计算机页面,查看是否有 目标U盘 盘符,如果没有的话,就右键空白处,选择刷新页面即可
        3. 排查方向三:完全格式化U盘重建分区
          1. 鉴于mac物理机速度更快,直接在 mac物理机上下载 DiskGenius(绿色版),再复制到 windows虚拟机中
          2. 打开DiskGenius,删除U盘所有分区(删除所有分区 U盘内容将被全部删除) 后重建成一个分区
          3. 操作完成后重新 拔插U盘 --> “我的电脑”中成功显示 目标U盘,此问题解决

10. 不同系统下生成目录树的方法:

  1. mac 系统命令行生成目录树的方法 tree -I node_modules --dirsfirst ,这个命令的意思是,不显示 node_modules 路径的文件,并且以文件夹在前的排序方式生成目录树。如果报没有找到 tree 命令的错,安装 tree 命令行 brew install tree 即可
    1. brew
      1. homebrew,简称brew
      2. 非官方介绍及基本使用https://blog.csdn.net/pyufftj/article/details/83102530
      3. brew install 和 brew cask install 的关系
  2. windows 系统在目标目录下使用 tree /f 1.txt 即可把当前目录树生成到一个新文件 1.txt 中

11. 翻墙服务器搭建

results matching ""

    No results matching ""

    results matching ""

      No results matching ""